app.push(function(){
    var LeftMenu = function(){
    	var container = false;
    	var menu_list = [];
    	var getContainer = function(){
    		if(!container) container = $('#left_menu:first');
    		return container;
    	}
        this.mode = false;
        //показать левое меню
        this.show = function(){
            if(this.mode) return;
            $('#all_container').removeClass('no_left_nemu');
            this.mode = true;
        }
        //спрятать левое меню
        this.hide = function(){
            if(!this.mode) return;
            $('#all_container').addClass('no_left_nemu');
            this.mode = false;
        }
        //очистить левое меню
    	this.erase = function(){
    		menu_list = [];
    		getContainer().html('');
    	}
    	this.set = function(data){
    		var result = false;
    		app.main.getTemplate(function(){
				result = $.tmpl('left_menu_element', data);
				result.appendTo(getContainer());
				menu_list.push(result);
            });
    	}
    	this.get = function(){
    		return menu_list;
    	}
    	//
        this.testUrl = function(list){
            return list.join('/') == app.currentUrl.join('/');
        }
        this.testUrlLight = function(list){
            if(list.length == app.currentUrl.length) return this.testUrl(list);
            return list.join('/') == app.currentUrl.slice(0,list.length).join('/');
        }
    	this.setEditShopLeftMenu = function(shop){
            this.erase();
            if(!shop) {
                var list =[
                    {
                        name: 'Помощь',
                        href: false
                    },
                    {
                        name: 'Как регистрировать магазин', 
                        href: '#help/create_shop',
                        icon: 'info-sign',
                        class_name: "help_window"
                    }
                ];
                if(app['user_info'] && app.user_info.user_shop.length)list.push({
                    name: 'Список ваших магазинов', 
                    href: '#shop/list',
                    icon: 'home',
                }); 
                this.set(list);
                this.show();
                return;
            }
            var catSubmenu = false;
            if(this.testUrl(['category','list',shop]) 
                || this.testUrlLight(['category','edit'])
                || this.testUrlLight(['category','add_for_product'])
                || this.testUrlLight(['category','add_for_article'])
                || this.testUrl(['category','products',shop]) 
                || this.testUrl(['category','articles',shop])){
                catSubmenu = [{
                    name: 'Категории товаров', 
                    href: '#category/products/' + shop,
                    icon: 'list',
                    active: this.testUrl(['category','list',shop]) || this.testUrl(['category','products',shop]) || this.testUrl(['category','add_for_product',shop]),
                    isSub:true
                },{
                    name: 'Категории статей', 
                    href: '#category/articles/' + shop,
                    icon: 'list',
                    active: this.testUrl(['category','articles',shop]) || this.testUrl(['category','add_for_article',shop]),
                    isSub:true
                }];
            }
    		this.set([
                {
    				name: 'Управление магазином',
                    href: false
    			},
    			{
    				name: 'Статистика магазина',
                    icon: 'signal', 
    				href: 'javascript:void(0)',
                    class_name: "muted"
    			},
    			{
    				name: 'Редактировать магазин', 
    				href: '#shop/edit/' + shop,
    				icon: 'edit',
                    active: this.testUrl(['shop','edit',shop])
    			},
                {
                    name: 'Управление категориями', 
                    href: '#category/list/' + shop,
                    icon: 'list',
                    active: this.testUrlLight(['category','edit']),
                    submenu: catSubmenu
                },
    			{
    				name: 'Управление продуктами', 
    				href: '#product/list/' + shop,
    				icon: 'gift',
                    active: this.testUrl(['product','list',shop])
    			},
    			{
    				name: 'Заказы', 
    				href: '#order/list/' + shop,
    				icon: 'shopping-cart',
                    active: this.testUrl(['order','list',shop])
    			},
    			{
    				name: 'Клиенты магазина', 
    				href: 'javascript:void(0)',
                    class_name: "muted",
    				icon: 'user'
    			},
    			{
    				name: 'Статьи для вашего магазина', 
    				href: '#article/list/' + shop,
    				icon: 'file',
                    active: this.testUrl(['article','list',shop])
    			},
                {
                    name: 'Создать новый магазин', 
                    href: '#shop/edit',
                    icon: 'plus',
                    active: this.testUrl(['shop','edit'])
                },
                {
                    name: 'Список магазинов', 
                    href: '#shop/list',
                    icon: 'home'
                }
    		]);
        this.show();
    	}
        this.setEditArticleLeftMenu = function(article,shop){
            this.erase();
            if(!article) {
                var list =[
                    {
                        name: 'Помощь',
                        href: false
                    },
                    {
                        name: 'Как создавать статью', 
                        href: '#help/create_atricle',
                        icon: 'info-sign'
                    }
                ];
                if(app['user_info'] && app.user_info.user_article)list.push({
                    name: 'Список статей', 
                    href: '#article/list/' + shop,
                    icon: 'file',
                    active: this.testUrl(['article','list',shop])
                }); 
                this.set(list);
                this.show();
                return;
            }
            this.set([
                {
                    name: 'Управление статьей',
                    href: false
                },
                {
                    name: 'Редактировать статью', 
                    href: '#article/edit/' + article,
                    icon: 'edit',
                    active: this.testUrl(['article','edit',article])
                },
                {
                    name: 'Управление категориями', 
                    href: '#category/articles/' + shop,
                    icon: 'list',
                    active: this.testUrl(['category','articles',shop])
                },
                {
                    name: 'Создать новую статью', 
                    href: '#article/add/' + shop,
                    icon: 'plus',
                    active: this.testUrl(['article','add'])
                },
                {
                    name: 'Список статей', 
                    href: '#article/list/' + shop,
                    icon: 'file'
                }
            ]);
            this.show();
        }
        this.setEditProductLeftMenu = function(product,shop){
            this.erase();
            if(!product) {
                var list =[
                    {
                        name: 'Помощь',
                        href: false
                    },
                    {
                        name: 'Как добавить продукт', 
                        href: '#help/create_product',
                        icon: 'info-sign'
                    }
                ];
                if(app['user_info']){
                    list.push({
                        name: 'Управление категориями', 
                        href: '#categoty/products/' + shop,
                        icon: 'list',
                        active: this.testUrl(['category','products',shop])
                    });
                    list.push({
                        name: 'Список продуктов', 
                        href: '#product/list/' + shop,
                        icon: 'gift',
                        active: this.testUrl(['product','list',shop])
                    }); 
                }
                this.set(list);
                this.show();
                return;
            }
            this.set([
                {
                    name: 'Управление продуктом',
                    href: false
                },
                {
                    name: 'Редактировать продукт', 
                    href: '#product/edit/' + product,
                    icon: 'edit',
                    active: this.testUrl(['product','edit', product])
                },
                {
                    name: 'Добавить новый продукт', 
                    href: '#product/add/' + shop,
                    icon: 'plus',
                    active: this.testUrl(['product','add'])
                },
                {
                    name: 'Список продуктов', 
                    href: '#product/list/' + shop,
                    icon: 'gift'
                },
                {
                    name: 'Управление категориями', 
                    href: '#categoty/products/' + shop,
                    icon: 'list',
                    active: this.testUrl(['category','products',shop])
                }
            ]);
            this.show();
        }
        this.setProfileLeftMenu = function(){
            this.erase();
            var list = [{
                name: 'Ваш профиль',
                href: false
            }];
            if(app.user_info.user_shop.length)list.push({
                name: 'Список магазинов', 
                href: '#shop/list',
                icon: 'home',
                active: this.testUrl(['shop','list'])
            }); 
            /*list.push({
                name: 'Создать новый магазин', 
                href: '#shop/edit',
                icon: 'plus',
            });*/
            /*list.push({
                name: 'Создать новую статью', 
                href: '#article/edit',
                icon: 'plus',
            });*/
            list.push({
                name: 'Данные пользователя', 
                href: '#user',
                icon: 'user',
                active: this.testUrl(['user'])
            });
            list.push({
                name: 'Редактирование профиля', 
                href: '#user/edit',
                icon: 'edit',
                active: this.testUrl(['user','edit'])
            });
            list.push({
                name: 'Настройки профиля', 
                href: '#user/settings',
                icon: 'cog',
                active: this.testUrl(['user','settings'])
            });
            this.set(list);
            this.show();
        }
        this.setRegisterLeftMenu = function(){
            this.erase();
            var list = [{
                name: 'Помощь',
                href: false
            }];
            list.push({
                name: 'Зачем нужна регистрация', 
                href: '#help/2',
                icon: 'info-sign',
            });
            this.set(list);
            this.show();
        }
        this.setEditCategoryLeftMenu = function(shop){
            this.erase();
            this.set([
                {
                    name: 'Управление категориями',
                    href: false
                },
                {
                    name: 'Категории товаров', 
                    href: '#category/products/' + shop,
                    icon: 'list',
                    active: this.testUrl(['category','products',shop]) || this.testUrl(['category','list',shop])
                },
                {
                    name: 'Категории статей', 
                    href: '#category/articles/' + shop,
                    icon: 'list',
                    active: this.testUrl(['category','articles',shop])
                }
            ]);
            this.show();
        }
        this.setMessagesLeftMenu = function(){
            this.erase();
            this.set([
                {
                    name: 'Ваши сообщения',
                    href: false
                },
                {
                    name: 'Создать сообщение', 
                    href: '#mail/add',
                    icon: 'pencil',
                    active: this.testUrlLight(['mail','add'])
                },
                {
                    name: 'Входящие сообщения', 
                    href: '#mail/list/in',
                    icon: 'envelope',
                    active: this.testUrl(['mail','list','in'] || ['mail','in'])
                },
                {
                    name: 'Исходящие сообщения', 
                    href: '#mail/list/out',
                    icon: 'envelope',
                    active: this.testUrl(['mail','list','out'] || ['mail','out'])
                }
            ]);
            this.show();
        }
    }
    app['leftMenu'] = new LeftMenu();
});